#pragma once

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#define ElemType int

typedef struct Node {
    ElemType data;
    struct Node* next;
} * pNode, Node;

typedef struct {
    pNode head;
    int len;
} LinkList;

void testLinkList2();
void RemoveElement(LinkList*, int);
void showElem(ElemType);
void InitLinkList(LinkList*);
void InsertElement(LinkList*, int, ElemType);
void AppendElemet(LinkList*, ElemType);
void ClearLinkList(LinkList*);
void GetElem(LinkList*, int, ElemType*);
int GetLength(LinkList*);
void TraveseList(LinkList*, void (*)(ElemType e));